# 私有化 __
# 继承 多个类型,代码有共性,概念统一
#
# print(isinstance(1, int))
# print(issubclass(int, list))
# print(type(1) == int)

class Animal:
    def eat(self):
        print("吃东西")


class Dog(Animal):
    def run(self):
        print("跑")


class Bird(Animal):
    def fly(self):
        print("飞")


animal = Animal()
dog = Dog()
bird = Bird()

dog.eat()
dog.run()
bird.eat()
bird.fly()

print(isinstance(dog, Animal))
print(issubclass(Dog, Animal))
print(type(dog) == Animal)

# 子类若没有构造函数, 直接使用父类继承来的
# 子类有构造函数会覆盖弗雷德构造函数, 从而使用自己的构造函数
# 如果想使用父类的构造函数,需要使用super().__init__(),子类构造函数参数:父类 + 子类
